package com.ly.heart.domain.vo;


import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.ly.common.core.domain.ActCurrentTaskVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.Date;

@Data
@ApiModel(value = "销售退货单返回Vo")
@JsonInclude(JsonInclude.Include.ALWAYS)
@Accessors(chain = true)
public class KingSaleRefundDetailVo implements Serializable {
    @ApiModelProperty("退货单id")
    private String refundId;

    @ApiModelProperty("退货单明细id")
    private String refundDetailId;

    @ApiModelProperty("退货单号")
    private String refundCode;

    @ApiModelProperty("销售订单id")
    private String saleOrderId;

    @ApiModelProperty("销售订单编码")
    private String saleCode;

    @ApiModelProperty("销售订单明细id")
    private String inventoryId;

    @ApiModelProperty("退货日期")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date refundDate;

    @ApiModelProperty("退货单状态")
    private String state;

    @ApiModelProperty("退货类型1:退货;2:退货补货;3:仅退款不退货")
    private String refundType;

    @ApiModelProperty("物料编码")
    private String materialCode;

    @ApiModelProperty("物料名称")
    private String materialName;

    @ApiModelProperty("物料型号")
    private String materialModel;

    @ApiModelProperty("批号")
    private String batchNum;

    @ApiModelProperty("可退数量")
    private String refundableNum;

    @ApiModelProperty("退货数量")
    private String refundNum;

    @ApiModelProperty("含税单价")
    private String taxPrice;

    @ApiModelProperty("单价")
    private String price;

    @ApiModelProperty("税率")
    private String taxRate;

    @ApiModelProperty("金额")
    private String amountMoney;

    @ApiModelProperty("价税合计")
    private String totalTaxPrice;

    @ApiModelProperty("税额")
    private String taxMoney;

    @ApiModelProperty("出库单编码")
    private String inventoryCode;

    @ApiModelProperty("汇率")
    private String exchangeRate;

    @ApiModelProperty("订单编码")
    private String saleOrderCode;

    @ApiModelProperty ( "流程实例id" )
    private String instanceId;

    @ApiModelProperty ( "当下审批人" )
    private String approvedUser;

    @ApiModelProperty ( "审批内容" )
    private String remark;

    @ApiModelProperty ( "当前任务信息" )
    private ActCurrentTaskVo currentTask;
    /**
     * 以下sql计算的字段
     */
    @ApiModelProperty("累计应收数量")
    private String totalReceivableNum;

    @ApiModelProperty("累计应收价税合计")
    private String totalReceivableTaxPrice;

    @ApiModelProperty("剩余应收数量")
    private String surplusReceivableNum;

    @ApiModelProperty("剩余应收价税合计")
    private String surplusReceivableTaxPrice;

    @ApiModelProperty("累计应收单对应源单金额")
    private String outReceivableNotTaxPrice;

    @ApiModelProperty("剩余应收单对应源单金额")
    private String surplusOutReceivableNotTaxPrice;

    @ApiModelProperty("累计应收单对应源单价税合计")
    private String outReceivableTaxPrice;

    @ApiModelProperty("金额(本位币)")
    private String amountMoneyInBaseCurrency;

    @ApiModelProperty("价税合计(本位币)")
    private String totalTaxPriceInBaseCurrency;

    @ApiModelProperty("税额(本位币)")
    private String taxMoneyInBaseCurrency;

    @ApiModelProperty ( "创建时间" )
    @JsonFormat ( pattern = "yyyy-MM-dd HH:mm:ss" )
    private Date createTime;


    @ApiModelProperty("库存部门")
    private String inventoryDept;

    @ApiModelProperty("库存单位code")
    private String inventoryUnit;

    @ApiModelProperty("库存单位")
    private String inventoryUnitName;

    @ApiModelProperty("库存部门名称")
    private String inventoryDeptName;

    @ApiModelProperty("退货客户code")
    private String returnCustomer;

    @ApiModelProperty("退货客户")
    private String returnCustomerName;

    @ApiModelProperty("仓库code")
    private String warehouseCode;

    @ApiModelProperty("仓库名称")
    private String warehouseName;

    @ApiModelProperty("仓位code")
    private String warehousePosition;

    @ApiModelProperty("仓位名称")
    private String warehouseRegionName;
}
